package com.itheima;

import com.itheima.config.MyConfig;
import com.itheima.other.MyImportBeanDefinitionRegistrar;
import com.itheima.other.MyImportSelector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.BackgroundPreinitializer;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;

/**
 * @Description
 * @Created by itheima
 */

@SpringBootApplication
//导入方式1：直接导入类,指定bean的类型，则底层创建一个bean对象，并被ioc容器管理
//bean的名称是类的全程限定名称
//@Import(User.class)
//方式2：导入配置类 配置类可以不使用@Configuration注解，那么@Bean的方法返回的对象也会被IOC容器维护
//@Import(MyConfig.class)
//方式3：导入ImportSelector实现类，作用：批量导入组件 bean的名称是对应的类的全限定名称
//@Import(MyImportSelector.class)
//方式4：导入批量注册bean的组件，完成bean的批量导入
//@Import(MyImportBeanDefinitionRegistrar.class)
//@SpringBootConfiguration
//@EnableAutoConfiguration
//@ComponentScan
public class ConfigApp {
    public static void main(String[] args) {
        //获取ioc容器对象
//        ConfigurableApplicationContext ctx = SpringApplication.run(ConfigApp.class, args);
//        User bean = ctx.getBean(User.class);
        SpringApplication.run(ConfigApp.class, args);

    }
}
